﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using VentaPorCatalogos.UserControls;
using BE.SearchCriteria;
using BE;
using BLL;
using System.Text;

namespace VentaPorCatalogos.Pages
{
    public partial class DevolucionesSearch : PageSearch 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session["SearchCriteria"] = null;
                pagGrilla.CompPaginador(Selector.Primera);
                InicializarGrilla();

                CargarCausas();
            }
        }

        protected override void Render(HtmlTextWriter writer)
        {
            foreach (GridViewRow r in gdvSearch.Rows)
            {
                if (r.RowType == DataControlRowType.DataRow)
                {
                    r.ToolTip = "Haga click para seleccionar";
                    r.Attributes["onclick"] = this.Page.ClientScript.GetPostBackClientHyperlink(this.gdvSearch, "Select$" + r.RowIndex, true);

                }
            }

            base.Render(writer);
        }

        #region "Buttons"
        protected void gdvSearch_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            int id = Convert.ToInt32(gdvSearch.DataKeys[index].Value);

            StringBuilder sbScript = new StringBuilder();
            sbScript.AppendLine(@"$(function () {");
            sbScript.AppendLine(string.Format("Seleccionar({0});", id ));
            sbScript.AppendLine(@"});");

            ScriptManager.RegisterStartupScript(this, this.GetType(), "closePage", sbScript.ToString(), true);
        }

        protected void btnFiltrar_Click(object sender, EventArgs e)
        {
            DevolucionSC oDevolucionSC = new DevolucionSC();

            Int32 wIdDevolucion;
            if (Int32.TryParse(txtIdDevolucion.Text, out wIdDevolucion))
            oDevolucionSC.idDevolucion = wIdDevolucion ;

            Int32 wIdCausa;
            if (Int32.TryParse(ddlCausa.SelectedValue, out wIdCausa))
                oDevolucionSC.IdCausa = wIdCausa;

            DateTime wFechaDesde;
            if (DateTime.TryParse(txtFechaDesde.Text, out wFechaDesde))
                oDevolucionSC.FechaDesde = wFechaDesde;

            DateTime wFechaHasta;
            if (DateTime.TryParse(txtFechaHasta.Text, out wFechaHasta))
                oDevolucionSC.FechaHasta  = wFechaHasta;

            Session["SearchCriteria"] = oDevolucionSC;

            CargarGrilla(Selector.Actual, "ASC");
        }

       
        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            ClientScript.RegisterStartupScript(typeof(Page), "closePage", string.Format("Seleccionar({0});", 0), true);
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            ClientScript.RegisterStartupScript(typeof(Page), "closePage", string.Format("Seleccionar({0});", 0), true);
        }
        #endregion

        #region "Grilla"
        protected void pagGrilla_OnComandoPagina(object sender, PaginadorEventArgs e)
        {
            //CargarGrilla(e.Comando, "ASC");
        }
        #endregion

        #region "Method"

        private void InicializarGrilla()
        {
            gdvSearch.DataSource = new List<DevolucionBE>();
            gdvSearch.DataBind();
        }

        private void CargarCausas()
        {
            int pCountReg = 0;
            CausaDevolucionSC oCausaDevolucionSC = new CausaDevolucionSC();
            List<CausaDevolucionBE> wListCausaDevolucion = new List<CausaDevolucionBE>();
            wListCausaDevolucion = CausaDevolucionBLL.SeleccionarPorParametros(oCausaDevolucionSC, 0, 0, ref pCountReg);


            if (wListCausaDevolucion != null && wListCausaDevolucion.Count > 0)
            {
                ddlCausa.DataSource = wListCausaDevolucion;
                ddlCausa.DataTextField = "Descripcion";
                ddlCausa.DataValueField = "IdCausa";
                ddlCausa.DataBind();

            }
        }

        private void CargarGrilla(Selector pnSelector, string p)
        {
            BaseSC wSearchCriteria;
            wSearchCriteria = (BaseSC)Session["SearchCriteria"];

            try
            {
                int wCountReg = 0;
                pagGrilla.CompPaginador(pnSelector);
                List<DevolucionBE> oListDevolucionBE = DevolucionBLL.SeleccionarPorParametros(wSearchCriteria, cPageSize, pagGrilla.Pagina, ref wCountReg);
                gdvSearch.DataSource = oListDevolucionBE;
                gdvSearch.DataBind();
                pagGrilla.PaginadorMethod(wCountReg, pnSelector, cPageSize);
            }
            finally
            {
                ;
            }
        }
        #endregion


    }
}